package br.uniriotec.pm.domain;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamImplicit;

@XStreamAlias("registro-vendas-mes")
public class RegistroVendasMes {
	
	@XStreamAlias("mes")
	@XStreamAsAttribute
	private String mes;
	
	@XStreamImplicit(keyFieldName="vendedor", itemFieldName="registro-vendas")
	private Map<Vendedor, RegistroVendas> mapaRegistroVendasVendedor;
	
	public RegistroVendasMes() {
		super();
		this.mapaRegistroVendasVendedor = new HashMap<Vendedor, RegistroVendas>();
	}

	public RegistroVendasMes(String mes) {
		super();
		this.mes = mes;
		this.mapaRegistroVendasVendedor = new HashMap<Vendedor, RegistroVendas>();
	}

	public String getMes() {
		return mes;
	}

	public void setMes(String mes) {
		this.mes = mes;
	}

	public Map<Vendedor, RegistroVendas> getMapaRegistroVendasVendedor() {
		return mapaRegistroVendasVendedor;
	}

	public void setMapaRegistroVendasVendedor(Map<Vendedor, RegistroVendas> mapaRegistroVendasVendedor) {
		this.mapaRegistroVendasVendedor = mapaRegistroVendasVendedor;
	}
	
	public RegistroVendas putRegistroVendasVendedor(Vendedor vendedor, RegistroVendas registroVendas) {
		return mapaRegistroVendasVendedor.put(vendedor, registroVendas);
	}
	
	public RegistroVendas removeRegistroVendasVendedor(Vendedor vendedor) {
		return mapaRegistroVendasVendedor.remove(vendedor);
	}
	
	public RegistroVendas getRegistroVendasVendedor(Vendedor vendedor) {
		return mapaRegistroVendasVendedor.get(vendedor);
	}
	
	public Set<Vendedor> getConjuntoVendedores() {
		return mapaRegistroVendasVendedor.keySet();
	}
	
	public boolean possuiRegistroVendasVendedor(Vendedor vendedor) {
		return mapaRegistroVendasVendedor.containsKey(vendedor);
	}
	
	public int totalRegistrosVendas(){
		return mapaRegistroVendasVendedor.size();
	}
}
